import { api } from "@/api/apiServer";
import { showToast,showLoadingToast ,closeToast } from 'vant';
export default function () {
// 获取微信回调过来的code 和 state 换取token
const getWxCallBackUrlCode = async (vcode: string) => {
    showLoadingToast({
        message: '加载中...',
        forbidClick: true,
        overlay:true,
    });
    let resData = await api.getUserInfoByWxCode({
     'code': vcode
    })
    closeToast()
    if (resData.code == 200) {
        resOpenData = resData.data
    } else {
        showToast({
        message: "授权失败",
        icon: 'none'
      })
    }
  }
  
  // 截取url中的 code
  const getUrlCode = (name: string) => {
    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [,
      ''
    ])[1]
      .replace(/\+/g, '%20')) || null
  }
  
  // 跳转微信授权登录
  const linkToWxLogin = () => {
    let callbackUrl = encodeURIComponent(window.location.href) //获取当前页面地址作为回调地址
    //通过微信官方接口获取code之后，会重新刷新设置的回调地址【redirect_uri】
    window.location.href =
      `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${import.meta.env.VITE_APPID_WEIXIN}&redirect_uri=${callbackUrl}&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect`
  }
  // 获取微信code ,openid
  const checkToken = () => {
    // 判断当前url是否有code 和 state，如果有，则说明是微信那边回调过来的
    // 则接收code 和 state ，去后台获取token
    let code = getUrlCode('code')
    if (code) {
      getWxCallBackUrlCode(code)
    } else {
      // 跳转微信授权
      linkToWxLogin()
    }
  }
  
}